<!doctype html>
<html class="default no-js">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>Geofence | React Native Background Geolocation</title>
	<meta name="description" content="Documentation for React Native Background Geolocation">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="../assets/css/main.css">
	<link rel="shortcut icon" class="favicon" href="../assets/images/favicon.ico">
	<script src="../assets/js/search.js"></script>
</head>
<body>
<header>
	<div class="tsd-page-toolbar">
		<div class="container">
			<div class="table-wrap">
				<div class="table-cell left">
					<div class="brand">
						<a class="logo" href="https://www.transistorsoft.com"><img src="../assets/images/transistor-logo-bw.svg" /></a>
						<span class="title">
							<a href="/react-native-background-geolocation">[API Docs] React Native Background Geolocation</a>&nbsp;<span class="tsd-flag ts-flagOptional ts-flagVersion">v 4.18.0</span>
						</span>
					</div>
				</div>
				<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
					<div class="field">
						<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
						<input id="tsd-search-field" type="text" />
					</div>
					<ul class="results">
						<li class="state loading"></li>
						<li class="state failure">The search index is not available</li>
					</ul>
				</div>
				<div class="table-cell" id="tsd-widgets">
					<div id="tsd-filter">
						<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
						<div class="tsd-filter-group">
							<div class="tsd-select" id="tsd-filter-visibility">
								<span class="tsd-select-label">All</span>
								<ul class="tsd-select-list">
									<li data-value="public">Public</li>
									<li data-value="protected">Public/Protected</li>
									<li data-value="private" class="selected">All</li>
								</ul>
							</div>
							<input type="checkbox" id="tsd-filter-inherited" checked />
							<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
						</div>
					</div>
					<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
				</div>
			</div>
		</div>
	</div>
	<div class="tsd-page-title">
		<div class="container">
			<ul class="tsd-breadcrumb">
				<li>
					<a href="../index.html">React Native Background Geolocation</a>
				</li>
				<li>
					<a href="geofence.html">Geofence</a>
				</li>
			</ul>
			<h1>Interface Geofence</h1>
		</div>
	</div>
</header>
<div class="container container-main">
	<div class="row">
		<div class="col-9 col-content">
			<section class="tsd-panel tsd-comment">
				<div class="tsd-comment tsd-typography">
					<div class="lead">
						<p>The Background Geolocation SDK implements the native iOS and Android Geofencing APIs.</p>
					</div>
					<p><strong>ℹ️ Note:</strong></p>
					<ul>
						<li>Native iOS &amp; Android API support only <em>circular</em> geofences, however the plugin does implement a custom mechanism for handling <em>Polygon Geofences</em>; see <a href="geofence.html#vertices">vertices</a>.</li>
						<li>The minimum reliable <a href="geofence.html#radius">radius</a> is <code>200</code> meters.</li>
						<li>The native geofencing API for both iOS and Android <em>require</em> the user authorize <a href="config.html#locationauthorizationrequest">locationAuthorizationRequest</a> <strong><code>Always</code></strong> &mdash; <strong><code>When in Use</code></strong> will <strong>not</strong> work.</li>
					</ul>
					<a href="#adding-geofences" id="adding-geofences" style="color: inherit; text-decoration: none;">
						<h2>Adding Geofences</h2>
					</a>
					<p>Adding a single geofence with <a href="../classes/backgroundgeolocation.html#addgeofence">addGeofence</a>.</p>
					<dl class="tsd-comment-tags">
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">addGeofence</span><span style="color: #F8F8F2">({</span>
<span style="color: #F8F8F2">  identifier: </span><span style="color: #E6DB74">&quot;Home&quot;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  radius: </span><span style="color: #AE81FF">200</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  latitude: </span><span style="color: #AE81FF">45.51921926</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  longitude: </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.61678581</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnEntry: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnExit: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  extras: {</span>
<span style="color: #F8F8F2">    route_id: </span><span style="color: #AE81FF">1234</span>
<span style="color: #F8F8F2">  }</span>
<span style="color: #F8F8F2">}).</span><span style="color: #A6E22E">then</span><span style="color: #F8F8F2">((</span><span style="color: #FD971F">success</span><span style="color: #F8F8F2">) </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[addGeofence] success&quot;</span><span style="color: #F8F8F2">);</span>
<span style="color: #F8F8F2">}).</span><span style="color: #A6E22E">catch</span><span style="color: #F8F8F2">((</span><span style="color: #FD971F">error</span><span style="color: #F8F8F2">) </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[addGeofence] FAILURE: &quot;</span><span style="color: #F8F8F2">, error);</span>
<span style="color: #F8F8F2">});</span>
</code></pre>
							<p>Adding multiple geofences with <a href="../classes/backgroundgeolocation.html#addgeofences">addGeofences</a>.</p>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F92672">await</span><span style="color: #F8F8F2"> BackgroundGeolocation.</span><span style="color: #A6E22E">addGeofences</span><span style="color: #F8F8F2">([{</span>
<span style="color: #F8F8F2">  identifier: </span><span style="color: #E6DB74">&quot;Home&quot;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  radius: </span><span style="color: #AE81FF">200</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  latitude: </span><span style="color: #AE81FF">45.51921926</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  longitude: </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.61678581</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnEntry: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">}, {</span>
<span style="color: #F8F8F2">  identifier: </span><span style="color: #E6DB74">&quot;Work&quot;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  radius: </span><span style="color: #AE81FF">200</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  latitude: </span><span style="color: #AE81FF">45.61921927</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  longitude: </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.71678582</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnEntry: </span><span style="color: #AE81FF">true</span>
<span style="color: #F8F8F2">}]);</span>
<span style="color: #F8F8F2">console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[addGeofences] success&quot;</span><span style="color: #F8F8F2">);</span>

</code></pre>
							<p><strong>ℹ️ Note:</strong> Adding a geofence having an <a href="geofence.html#identifier">identifier</a> which already exists within the SDK geofence database will cause the previous record to be destroyed and the new one inserted.</p>
							<hr>
							<a href="#listening-for-geofence-events" id="listening-for-geofence-events" style="color: inherit; text-decoration: none;">
								<h2>Listening for Geofence Events</h2>
							</a>
							<p>Listen to geofence events with <a href="../classes/backgroundgeolocation.html#ongeofence">BackgroundGeolocation.onGeofence</a>.</p>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #88846F">// Listen for geofence events.</span>
<span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">onGeofence</span><span style="color: #F8F8F2">(</span><span style="color: #FD971F">geofence</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[geofence] &quot;</span><span style="color: #F8F8F2">, geofence.identifier, geofence.action);</span>
<span style="color: #F8F8F2">});</span>
</code></pre>
							<hr>
							<a href="#polygon-geofencing" id="polygon-geofencing" style="color: inherit; text-decoration: none;">
								<h2>Polygon Geofencing</h2>
							</a>
							<p>The Background Geolocation SDK supports <em>Polygon Geofences</em> (Geofences of any shape).  See API docs <a href="geofence.html#vertices">vertices</a>.</p>
							<ul>
								<li>ℹ️ <strong><em>Polygon Geofencing</em></strong> is <a href="https://shop.transistorsoft.com/products/polygon-geofencing">sold as a separate add-on</a> (fully functional in <em>DEBUG</em> builds).</li>
							</ul>
							<p><img src="https://dl.dropbox.com/scl/fi/sboshfvar0h41azmb4tyv/polygon-geofencing-parc-outremont-400.png?rlkey=d2s0n3zbzu72e7s2gch9kxd4a&dl=1" alt="">
							<img src="https://dl.dropbox.com/scl/fi/xz48myvjnpp8ko0l2tufg/polygon-geofencing-parc-lafontaine-400.png?rlkey=sf20ns959uj0a0fq0atmj55bz&dl=1" alt=""></p>
							<hr>
							<a href="#infinite-geofencing" id="infinite-geofencing" style="color: inherit; text-decoration: none;">
								<h2>Infinite Geofencing</h2>
							</a>
							<p>The Background Geolocation SDK contains unique and powerful Geofencing features that allow you to monitor any number of circular geofences you wish (thousands even), in spite of limits imposed by the native platform APIs (<strong>20 for iOS; 100 for Android</strong>).</p>
							<p>The SDK achieves this by storing your geofences in its database, using a <a href="https://en.wikipedia.org/wiki/Spatial_query">geospatial query</a> to determine those geofences in proximity (<a href="config.html#geofenceproximityradius">geofenceProximityRadius</a>), activating only those geofences closest to the device&#39;s current location (according the limit imposed by the corresponding platform).</p>
							<ul>
								<li>When the device is determined to be moving, the plugin periodically queries for geofences within the <a href="config.html#geofenceproximityradius">geofenceProximityRadius</a> (eg. every minute) using the latest recorded location.  This geospatial query is <strong>very fast</strong>, even with tens-of-thousands geofences in the database.</li>
								<li>The SDK <strong>enforces</strong> a <em>minimum</em> <a href="config.html#geofenceproximityradius">geofenceProximityRadius</a> of <code>1000</code> meters.</li>
								<li>In the following image, the <em>green</em> geofences within <a href="config.html#geofenceproximityradius">geofenceProximityRadius</a> are <em>actively</em> monitored.  The <em>grey</em> geofences outside <a href="config.html#geofenceproximityradius">geofenceProximityRadius</a> still exist within the SDK&#39;s database but are <em>not</em> actively being monitored.</li>
							</ul>
							<p><img src="https://dl.dropboxusercontent.com/s/7sggka4vcbrokwt/geofenceProximityRadius_iphone6_spacegrey_portrait.png?dl=1" alt=""></p>
							<hr>
							<a href="#listening-for-changes-in-the-actively-monitored-set-of-geofences" id="listening-for-changes-in-the-actively-monitored-set-of-geofences" style="color: inherit; text-decoration: none;">
								<h2>Listening for changes in the actively-monitored set-of-geofences.</h2>
							</a>
							<p>As the SDK periodically queries for geofences within the <a href="config.html#geofenceproximityradius">geofenceProximityRadius</a>, you can listen for changes in the actively-monitored geofences using the event <a href="../classes/backgroundgeolocation.html#ongeofenceschange">onGeofencesChange</a>.  This event will let you know those geofences which have <em>begun</em> to be <em>actively monitored</em> (<a href="geofenceschangeevent.html#on">GeofencesChangeEvent.on</a>) in addition to those which just <em>ceased</em> to be actively monitored (<a href="geofenceschangeevent.html#off">GeofencesChangeEvent.off</a>).</p>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">onGeofencesChange</span><span style="color: #F8F8F2">((</span><span style="color: #FD971F">event</span><span style="color: #F8F8F2">) </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  </span><span style="color: #66D9EF">let</span><span style="color: #F8F8F2"> on </span><span style="color: #F92672">=</span><span style="color: #F8F8F2"> event.on;     </span><span style="color: #88846F">//&lt;-- new geofences activated.</span>
<span style="color: #F8F8F2">  </span><span style="color: #66D9EF">let</span><span style="color: #F8F8F2"> off </span><span style="color: #F92672">=</span><span style="color: #F8F8F2"> event.off; </span><span style="color: #88846F">//&lt;-- geofences that were just de-activated.</span>

<span style="color: #F8F8F2">  </span><span style="color: #88846F">// Create map circles</span>
<span style="color: #F8F8F2">  on.</span><span style="color: #A6E22E">forEach</span><span style="color: #F8F8F2">((</span><span style="color: #FD971F">geofence</span><span style="color: #F8F8F2">) </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">    </span><span style="color: #A6E22E">createGeofenceMarker</span><span style="color: #F8F8F2">(geofence)</span>
<span style="color: #F8F8F2">  });</span>

<span style="color: #F8F8F2">  </span><span style="color: #88846F">// Remove map circles</span>
<span style="color: #F8F8F2">  off.</span><span style="color: #A6E22E">forEach</span><span style="color: #F8F8F2">((</span><span style="color: #FD971F">identifier</span><span style="color: #F8F8F2">) </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">    </span><span style="color: #A6E22E">removeGeofenceMarker</span><span style="color: #F8F8F2">(identifier);</span>
<span style="color: #F8F8F2">  });</span>
<span style="color: #F8F8F2">});</span>
</code></pre>
							<a href="#⚠️-note" id="⚠️-note" style="color: inherit; text-decoration: none;">
								<h3>⚠️ Note:</h3>
							</a>
							<ul>
								<li>When <strong>all</strong> geofences have been removed, the <a href="geofenceschangeevent.html">GeofencesChangeEvent</a> will provide empty lists for both <a href="geofenceschangeevent.html#on">GeofencesChangeEvent.on</a> &amp; <a href="geofenceschangeevent.html#off">GeofencesChangeEvent.off</a>.</li>
							</ul>
							<hr>
							<a href="#removing-geofences" id="removing-geofences" style="color: inherit; text-decoration: none;">
								<h2>Removing Geofences</h2>
							</a>
							<p>Once a geofence has been inserted into the SDK&#39;s database using <a href="../classes/backgroundgeolocation.html#addgeofence">addGeofence</a> or <a href="../classes/backgroundgeolocation.html#addgeofences">addGeofences</a>, they will be monitored <em>forever</em> (as long as the plugin remains <code>State.enabled == true</code>).  If you&#39;ve configured <a href="config.html#stoponterminate">stopOnTerminate</a> <strong><code>false</code></strong> and <a href="config.html#startonboot">startOnBoot</a> <strong><code>true</code></strong>, geofences will continue to be monitored even if the application is terminated or device rebooted.
							To cease monitoring a geofence or <em>geofences</em>, you must <em>remove</em> them from the SDK&#39;s database (or call <a href="../classes/backgroundgeolocation.html#stop">BackgroundGeolocation.stop</a>).</p>
							<ul>
								<li>Removing a single geofence by <a href="geofence.html#identifier">identifier</a> with <a href="../classes/backgroundgeolocation.html#removegeofence">removeGeofence</a>:</li>
							</ul>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">removeGeofence</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;HOME&quot;</span><span style="color: #F8F8F2">).</span><span style="color: #A6E22E">then</span><span style="color: #F8F8F2">(</span><span style="color: #FD971F">success</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[removeGeofence] success&quot;</span><span style="color: #F8F8F2">);</span>
<span style="color: #F8F8F2">})</span>
</code></pre>
							<ul>
								<li>Removing <em>all</em> geofences with <a href="../classes/backgroundgeolocation.html#removegeofences">removeGeofences</a>:</li>
							</ul>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">removeGeofences</span><span style="color: #F8F8F2">().</span><span style="color: #A6E22E">then</span><span style="color: #F8F8F2">(</span><span style="color: #FD971F">success</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[removeGeofences] all geofences have been destroyed&quot;</span><span style="color: #F8F8F2">);</span>
<span style="color: #F8F8F2">})</span>
</code></pre>
							<hr>
							<a href="#querying-geofences" id="querying-geofences" style="color: inherit; text-decoration: none;">
								<h2>Querying Geofences</h2>
							</a>
							<p>Use the method <a href="../classes/backgroundgeolocation.html#getgeofences">getGeofences</a> to retrieve the entire Array of <a href="geofence.html">Geofence</a> stored in the SDK&#39;s database.</p>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">getGeofences</span><span style="color: #F8F8F2">().</span><span style="color: #A6E22E">then</span><span style="color: #F8F8F2">(</span><span style="color: #FD971F">geofences</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[getGeofences] &quot;</span><span style="color: #F8F8F2">, geofences);</span>
<span style="color: #F8F8F2">})</span>
</code></pre>
							<hr>
							<a href="#monitoring-only-geofences" id="monitoring-only-geofences" style="color: inherit; text-decoration: none;">
								<h2>Monitoring <em>only</em> geofences</h2>
							</a>
							<p>The BackgroundGeolocation SDK allows you to optionally monitor <em>only</em> geofences without constant location-tracking.  To engage <em>geofences-only</em> mode, use the method <a href="../classes/backgroundgeolocation.html#startgeofences">startGeofences</a> instead of <a href="../classes/backgroundgeolocation.html#start">start</a>.</p>
							<p>Use option <a href="config.html#geofencemodehighaccuracy">Config.geofenceModeHighAccuracy</a>:true to improve the responsiveness of geofence events.</p>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">onGeofence</span><span style="color: #F8F8F2">(</span><span style="color: #FD971F">geofence</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[geofence] &quot;</span><span style="color: #F8F8F2">, geofence);</span>
<span style="color: #F8F8F2">})</span>

<span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">ready</span><span style="color: #F8F8F2">({</span>
<span style="color: #F8F8F2">  url: </span><span style="color: #E6DB74">&quot;http://your.server.com/geofences&quot;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  autoSync: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  geofenceModeHighAccuracy: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">   </span><span style="color: #88846F">// &lt;-- consumes more power; default is false.</span>
<span style="color: #F8F8F2">}, </span><span style="color: #FD971F">state</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  </span><span style="color: #88846F">// engage geofences-only mode:</span>
<span style="color: #F8F8F2">  BackgroundGeolocation.</span><span style="color: #A6E22E">startGeofences</span><span style="color: #F8F8F2">();</span>
<span style="color: #F8F8F2">})</span>
</code></pre>
							<a href="#toggling-between-tracking-modes-start-and-startgeofences" id="toggling-between-tracking-modes-start-and-startgeofences" style="color: inherit; text-decoration: none;">
								<h2>Toggling between tracking-modes <a href="../classes/backgroundgeolocation.html#start">start</a> and <a href="../classes/backgroundgeolocation.html#startgeofences">startGeofences</a></h2>
							</a>
							<p>The SDK can easily be toggled between <a href="state.html#trackingmode">State.trackingMode</a> simply by executing the corresponding <a href="../classes/backgroundgeolocation.html#start">start</a> or <a href="../classes/backgroundgeolocation.html#startgeofences">startGeofences</a> methods.</p>
						</dd>
						<dt class="tsd-comment-tag-example">example</dt>
						<dd><pre><code class="language-typescript"><span style="color: #88846F">// Listen to geofence events</span>
<span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">onGeofence</span><span style="color: #F8F8F2">(</span><span style="color: #FD971F">geofence</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  console.</span><span style="color: #A6E22E">log</span><span style="color: #F8F8F2">(</span><span style="color: #E6DB74">&quot;[geofence] &quot;</span><span style="color: #F8F8F2">, geofence);</span>
<span style="color: #F8F8F2">  </span><span style="color: #F92672">if</span><span style="color: #F8F8F2"> (geofence.identifier </span><span style="color: #F92672">==</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;DANGER_ZONE&quot;</span><span style="color: #F8F8F2">) {</span>
<span style="color: #F8F8F2">    </span><span style="color: #F92672">if</span><span style="color: #F8F8F2"> (geofence.action </span><span style="color: #F92672">==</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;ENTER&quot;</span><span style="color: #F8F8F2">) {</span>
<span style="color: #F8F8F2">      </span><span style="color: #88846F">// Entering the danger-zone, we want to aggressively track location.</span>
<span style="color: #F8F8F2">      BackgroundGeolocation.</span><span style="color: #A6E22E">start</span><span style="color: #F8F8F2">();</span>
<span style="color: #F8F8F2">    } </span><span style="color: #F92672">else</span><span style="color: #F8F8F2"> </span><span style="color: #F92672">if</span><span style="color: #F8F8F2"> (geofence.action </span><span style="color: #F92672">==</span><span style="color: #F8F8F2"> </span><span style="color: #E6DB74">&quot;EXIT&quot;</span><span style="color: #F8F8F2">) {</span>
<span style="color: #F8F8F2">      </span><span style="color: #88846F">// Exiting the danger-zone, we resume geofences-only tracking.</span>
<span style="color: #F8F8F2">      BackgroundGeolocation.</span><span style="color: #A6E22E">startGeofences</span><span style="color: #F8F8F2">();</span>
<span style="color: #F8F8F2">    }</span>
<span style="color: #F8F8F2">  }</span>
<span style="color: #F8F8F2">})</span>

<span style="color: #88846F">// Add a geofence.</span>
<span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">addGeofence</span><span style="color: #F8F8F2">({</span>
<span style="color: #F8F8F2">  identifier: </span><span style="color: #E6DB74">&quot;DANGER_ZONE&quot;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  radius: </span><span style="color: #AE81FF">1000</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  latitude: </span><span style="color: #AE81FF">45.51921926</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  longitude: </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.61678581</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnEntry: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnExit: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">})</span>

<span style="color: #88846F">// Ready the plugin.</span>
<span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">ready</span><span style="color: #F8F8F2">({</span>
<span style="color: #F8F8F2">  desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_HIGH,</span>
<span style="color: #F8F8F2">  distanceFilter: </span><span style="color: #AE81FF">10</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  url: </span><span style="color: #E6DB74">&quot;http://your.server.com/locations&quot;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  autoSync: </span><span style="color: #AE81FF">true</span>
<span style="color: #F8F8F2">}, </span><span style="color: #FD971F">state</span><span style="color: #F8F8F2"> </span><span style="color: #66D9EF">=&gt;</span><span style="color: #F8F8F2"> {</span>
<span style="color: #F8F8F2">  BackgroundGeolocation.</span><span style="color: #A6E22E">startGeofences</span><span style="color: #F8F8F2">();</span>
<span style="color: #F8F8F2">})</span>
</code></pre>
						</dd>
					</dl>
				</div>
			</section>
			<section class="tsd-panel tsd-hierarchy">
				<h3>Hierarchy</h3>
				<ul class="tsd-hierarchy">
					<li>
						<span class="target">Geofence</span>
					</li>
				</ul>
			</section>
			<section class="tsd-panel-group tsd-index-group">
				<h2>Index</h2>
				<section class="tsd-panel tsd-index-panel">
					<div class="tsd-index-content">
						<section class="tsd-index-section ">
							<h3>Properties</h3>
							<ul class="tsd-index-list">
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#extras" class="tsd-kind-icon">extras</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#identifier" class="tsd-kind-icon">identifier</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#latitude" class="tsd-kind-icon">latitude</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#loiteringdelay" class="tsd-kind-icon">loitering<wbr>Delay</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#longitude" class="tsd-kind-icon">longitude</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#notifyondwell" class="tsd-kind-icon">notify<wbr>OnDwell</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#notifyonentry" class="tsd-kind-icon">notify<wbr>OnEntry</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#notifyonexit" class="tsd-kind-icon">notify<wbr>OnExit</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#radius" class="tsd-kind-icon">radius</a></li>
								<li class="tsd-kind-property tsd-parent-kind-interface"><a href="geofence.html#vertices" class="tsd-kind-icon">vertices</a></li>
							</ul>
						</section>
					</div>
				</section>
			</section>
			<section class="tsd-panel-group tsd-member-group ">
				<h2>Properties</h2>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="extras" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> extras</h3>
					<div class="tsd-signature tsd-kind-icon">extras<span class="tsd-signature-symbol">:</span> <a href="../index.html#extras" class="tsd-signature-type" data-tsd-kind="Type alias">Extras</a></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Arbitrary key-values appended to the geofence event and posted to your configured <a href="config.html#url">Config.url</a>.</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="identifier" class="tsd-anchor"></a>
					<h3>identifier</h3>
					<div class="tsd-signature tsd-kind-icon">identifier<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Unique geofence identifier.</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="latitude" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> latitude</h3>
					<div class="tsd-signature tsd-kind-icon">latitude<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Latitude of geofence center</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="loiteringdelay" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> loitering<wbr>Delay</h3>
					<div class="tsd-signature tsd-kind-icon">loitering<wbr>Delay<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Minimum time in <em>milliseconds</em> the device must &quot;loiter&quot; within this geofence before <a href="geofence.html#notifyondwell">notifyOnDwell</a> event fires.</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="longitude" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> longitude</h3>
					<div class="tsd-signature tsd-kind-icon">longitude<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Longitude of geofence center.</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="notifyondwell" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> notify<wbr>OnDwell</h3>
					<div class="tsd-signature tsd-kind-icon">notify<wbr>OnDwell<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Set <code>true</code> to fire event when device &quot;loiters&quot; within this geofence for <a href="geofence.html#loiteringdelay">loiteringDelay</a> milliseconds.</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="notifyonentry" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> notify<wbr>OnEntry</h3>
					<div class="tsd-signature tsd-kind-icon">notify<wbr>OnEntry<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Set <code>true</code> to fire event when device <em>enters</em> this geofence.</p>
						</div>
						<p><strong>ℹ️ See also:</strong></p>
						<ul>
							<li><a href="config.html#geofenceinitialtriggerentry">Config.geofenceInitialTriggerEntry</a></li>
						</ul>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="notifyonexit" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> notify<wbr>OnExit</h3>
					<div class="tsd-signature tsd-kind-icon">notify<wbr>OnExit<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Set <code>true</code> to fire event when device <em>exits</em> this geofence.</p>
						</div>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="radius" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> radius</h3>
					<div class="tsd-signature tsd-kind-icon">radius<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Radius of the circular geofence.</p>
						</div>
						<p>⚠️ The minimum reliable <code>radius</code> is <strong><code>200</code></strong> meters.  Anything less will likely not cause a geofence to trigger.  This is documented by Apple <a href="https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html">here</a>:</p>
						<blockquote>
							<p><em>&quot;The specific threshold distances are determined by the hardware and the location technologies that are currently available. For example, if WiFi is disabled, region monitoring is significantly less accurate. However, for testing purposes, <strong>you can assume that the minimum distance is approximately 200 meters</strong></em>&quot;.</p>
						</blockquote>
					</div>
				</section>
				<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
					<a name="vertices" class="tsd-anchor"></a>
					<h3><span class="tsd-flag ts-flagOptional">Optional</span> vertices</h3>
					<div class="tsd-signature tsd-kind-icon">vertices<span class="tsd-signature-symbol">:</span> <a href="../index.html#vertices" class="tsd-signature-type" data-tsd-kind="Type alias">Vertices</a></div>
					<aside class="tsd-sources">
					</aside>
					<div class="tsd-comment tsd-typography">
						<div class="lead">
							<p>Optional: a list of vertices (<code>[ [lat, lng],...]</code>) defining a Polygon geofence.  By default, geofences are circular.</p>
						</div>
						<p>ℹ️ <strong><em>Polygon Geofencing</em></strong> is <a href="https://shop.transistorsoft.com/products/polygon-geofencing">sold as a separate add-on</a> (fully functional in <em>DEBUG</em> builds).</p>
						<p>When defining a polygon geofence, you do <strong>not</strong> provide <a href="geofence.html#latitude">latitude</a>, <a href="geofence.html#longitude">longitude</a> or <a href="geofence.html#radius">radius</a> &mdash; those will be automatically calculated based upon the geometry of the polygon.</p>
						<p>The following image shows polygon geofences on a map:</p>
						<p><img src="https://dl.dropbox.com/scl/fi/xzf6yau5wcg1az8fy0lbm/geofencing-polygons-on-map.PNG?rlkey=e82h494msbgt8ngu4s2pjwemb&dl=1" alt=""></p>
						<p>The <em>blue polygons</em> represent the <em>actual</em> polygon geofences and the containing <em>green circles</em> are traditional circular geofences provided by the native <em>iOS/Android</em> Geofencing APIs.  The background-geolocation SDK automatically calculates the containing, native cirular geofence by solving the <a href="https://en.wikipedia.org/wiki/Smallest-circle_problem"><em>minimum enclosing circle</em></a> for the given <a href="geofence.html#vertices">vertices</a>.
						This is why you do not provide <a href="geofence.html#latitude">latitude</a>, <a href="geofence.html#longitude">longitude</a> and <a href="geofence.html#radius">radius</a>.</p>
						<ul>
							<li>When the device <em>enters</em> the containing circular geofence, the SDK uses that as a signal that the device is approaching a polygon.  At this moment, the SDK begins aggressively monitoring the location to perform &quot;hit-testing&quot; upon the polygon using a fast algorithm implemented with C++ code.</li>
							<li>When the device <em>exits</em> the containing circular geofence, that&#39;s the SDK&#39;s signal for it to <em>cease</em> monitoring that polygon.</li>
						</ul>
						<dl class="tsd-comment-tags">
							<dt class="tsd-comment-tag-example">example</dt>
							<dd><pre><code class="language-javascript"><span style="color: #F8F8F2">BackgroundGeolocation.</span><span style="color: #A6E22E">addGeofence</span><span style="color: #F8F8F2">({</span>
<span style="color: #F8F8F2">  identifier: </span><span style="color: #E6DB74">&#039;Home&#039;</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnEntry: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  notifyOnExit: </span><span style="color: #AE81FF">true</span><span style="color: #F8F8F2">,</span>
<span style="color: #F8F8F2">  vertices: [</span>
<span style="color: #F8F8F2">    [</span><span style="color: #AE81FF">45.518947279987714</span><span style="color: #F8F8F2">, </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.6049889209514</span><span style="color: #F8F8F2">],  </span><span style="color: #88846F">// &lt;-- [lat, lng]</span>
<span style="color: #F8F8F2">    [</span><span style="color: #AE81FF">45.5182711292279</span><span style="color: #F8F8F2">, </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.60338649600598</span><span style="color: #F8F8F2">],</span>
<span style="color: #F8F8F2">    [</span><span style="color: #AE81FF">45.517082240237634</span><span style="color: #F8F8F2">, </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.60432670908212</span><span style="color: #F8F8F2">],</span>
<span style="color: #F8F8F2">    [</span><span style="color: #AE81FF">45.51774871402813</span><span style="color: #F8F8F2">, </span><span style="color: #F92672">-</span><span style="color: #AE81FF">73.60604928622278</span><span style="color: #F8F8F2">]</span>
<span style="color: #F8F8F2">  ]</span>
<span style="color: #F8F8F2">});</span>
</code></pre>
								<ul>
									<li>
										<a href="#entering--exiting-a-cross-shaped-polygon-geofence" id="entering--exiting-a-cross-shaped-polygon-geofence" style="color: inherit; text-decoration: none;">
											<h4>Entering / exiting a <em>cross-shaped</em> polygon geofence:</h4>
										</a>
									</li>
								</ul>
								<p><img src="https://dl.dropbox.com/scl/fi/iorrnrm0zno91jtg0ctse/polygon-geofencing-cross.PNG?rlkey=p4kufqhxgw9jrmuz4vkqisprw&dl=1" alt=""></p>
								<ul>
									<li>
										<a href="#entering--exiting-a-park" id="entering--exiting-a-park" style="color: inherit; text-decoration: none;">
											<h4>Entering / exiting a park:</h4>
										</a>
									</li>
								</ul>
								<p><img src="https://dl.dropbox.com/scl/fi/qvg9n3s5iacje5szgcqfv/polygon-geofencing-parc-outremont.PNG?rlkey=c6iax7a19db2v6xdxf18k2a7k&dl=1" alt=""></p>
								<ul>
									<li>
										<a href="#entering--exiting-a-diamond-shaped-polygon" id="entering--exiting-a-diamond-shaped-polygon" style="color: inherit; text-decoration: none;">
											<h4>Entering / exiting a diamond-shaped polygon:</h4>
										</a>
									</li>
								</ul>
								<p><img src="https://dl.dropbox.com/scl/fi/29m3xwb7tm0532mthgjfy/polygon-geofencing-diamond.PNG?rlkey=9ucc5hs7460ig7226iutas4cw&dl=1" alt=""></p>
								<ul>
									<li>
										<a href="#designing-a-polygon-geofence-around-a-park-using-the-demo-app" id="designing-a-polygon-geofence-around-a-park-using-the-demo-app" style="color: inherit; text-decoration: none;">
											<h4>Designing a polygon geofence around a park using the demo app:</h4>
										</a>
									</li>
								</ul>
								<p><img src="https://dl.dropbox.com/scl/fi/806mxnz9cdfd4ely8uwfe/polygon-geofencing-parc-lafontaine.PNG?rlkey=yrlbfisx8o5itfz6h0d0inel1&dl=1" alt=""></p>
							</dd>
						</dl>
					</div>
				</section>
			</section>
		</div>
		<div class="col-3 col-menu menu-sticky-wrap menu-highlight">
			<nav class="tsd-navigation primary menu-sticky">
				<ul class="before-current">
				</ul>
				<ul class="current">
					<li class="current tsd-kind-interface">
						<a href="geofence.html" class="tsd-kind-icon">Geofence</a>
						<ul>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#extras" class="tsd-kind-icon">extras</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#identifier" class="tsd-kind-icon">identifier</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#latitude" class="tsd-kind-icon">latitude</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#loiteringdelay" class="tsd-kind-icon">loitering<wbr>Delay</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#longitude" class="tsd-kind-icon">longitude</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#notifyondwell" class="tsd-kind-icon">notify<wbr>OnDwell</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#notifyonentry" class="tsd-kind-icon">notify<wbr>OnEntry</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#notifyonexit" class="tsd-kind-icon">notify<wbr>OnExit</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#radius" class="tsd-kind-icon">radius</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#vertices" class="tsd-kind-icon">vertices</a>
							</li>
						</ul>
					</li>
				</ul>
				<ul class="after-current">
				</ul>
			</nav>
			<nav class="tsd-navigation secondary menu-sticky">
				<ul class="before-current">
				</ul>
				<ul class="current">
					<li class="current tsd-kind-interface">
						<a href="geofence.html" class="tsd-kind-icon">Geofence</a>
						<ul>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#extras" class="tsd-kind-icon">extras</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#identifier" class="tsd-kind-icon">identifier</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#latitude" class="tsd-kind-icon">latitude</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#loiteringdelay" class="tsd-kind-icon">loitering<wbr>Delay</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#longitude" class="tsd-kind-icon">longitude</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#notifyondwell" class="tsd-kind-icon">notify<wbr>OnDwell</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#notifyonentry" class="tsd-kind-icon">notify<wbr>OnEntry</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#notifyonexit" class="tsd-kind-icon">notify<wbr>OnExit</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#radius" class="tsd-kind-icon">radius</a>
							</li>
							<li class=" tsd-kind-property tsd-parent-kind-interface">
								<a href="geofence.html#vertices" class="tsd-kind-icon">vertices</a>
							</li>
						</ul>
					</li>
				</ul>
				<ul class="after-current">
				</ul>
			</nav>
		</div>
	</div>
</div>
<footer class="with-border-bottom">
	<div class="container">
		<h2>Legend</h2>
		<div class="tsd-legend-group">
			<ul class="tsd-legend">
				<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static property</span></li>
				<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li>
			</ul>
			<ul class="tsd-legend">
				<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
			</ul>
		</div>
	</div>
</footer>
<div class="container tsd-generator">
	<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-4NNZKTE395"></script>
<script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());
        gtag('config', 'G-4NNZKTE395');
    </script>
</body>
</html>